function browserdetect(){
    var b=navigator.userAgent.toLowerCase();
    this.isIE=b.indexOf("msie")>-1;
    if(this.isIE){
        this.ieVer=/msie\s(\d\.\d)/.exec(b)[1];
        this.quirksMode=!document.compatMode||document.compatMode.indexOf("BackCompat")>-1;
        this.get_style=function(f,h){
            if(!(h in f.currentStyle)){
                return""
                }
                var d=/^([\d.]+)(\w*)/.exec(f.currentStyle[h]);
            if(!d){
                return f.currentStyle[h]
                }
                if(d[1]==0){
                return"0"
                }
                if(d[2]&&d[2]!=="px"){
                var c=f.style.left;
                var g=f.runtimeStyle.left;
                f.runtimeStyle.left=f.currentStyle.left;
                f.style.left=d[1]+d[2];
                d[0]=f.style.pixelLeft;
                f.style.left=c;
                f.runtimeStyle.left=g
                }
                return d[0]
            };

        this.supportsCorners=false
        }else{
        this.ieVer=this.quirksMode=0;
        this.get_style=function(c,d){
            d=d.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();
            return document.defaultView.getComputedStyle(c,"").getPropertyValue(d)
            };

        this.isSafari=b.indexOf("safari")!=-1;
        this.isWebKit=b.indexOf("webkit")!=-1;
        this.isOp="opera" in window;
        if(this.isOp){
            this.supportsCorners=(this.isOp=window.opera.version())>=10.5
            }else{
            if(!this.isWebkit){
                if(!(this.isMoz=b.indexOf("firefox")!==-1)){
                    for(var a=document.childNodes.length;--a>=0;){
                        if("style" in document.childNodes[a]){
                            this.isMoz="MozBorderRadius" in document.childNodes[a].style;
                            break
                        }
                    }
                    }
            }
    this.supportsCorners=this.isWebKit||this.isMoz
}
}
}
var curvyBrowser=new browserdetect;
if(curvyBrowser.isIE){
    try{
        document.execCommand("BackgroundImageCache",false,true)
            }catch(e){}
}
function curvyCnrSpec(a){
    this.selectorText=a;
    this.tlR=this.trR=this.blR=this.brR=0;
    this.tlu=this.tru=this.blu=this.bru="";
    this.antiAlias=true
    }
    curvyCnrSpec.prototype.setcorner=function(b,c,a,d){
    if(!b){
        this.tlR=this.trR=this.blR=this.brR=parseInt(a);
        this.tlu=this.tru=this.blu=this.bru=d
        }else{
        var f=b.charAt(0)+c.charAt(0);
        this[f+"R"]=parseInt(a);
        this[f+"u"]=d
        }
    };

curvyCnrSpec.prototype.get=function(d){
    if(/^(t|b)(l|r)(R|u)$/.test(d)){
        return this[d]
        }
        if(/^(t|b)(l|r)Ru$/.test(d)){
        var c=d.charAt(0)+d.charAt(1);
        return this[c+"R"]+this[c+"u"]
        }
        if(/^(t|b)Ru?$/.test(d)){
        var b=d.charAt(0);
        b+=this[b+"lR"]>this[b+"rR"]?"l":"r";
        var a=this[b+"R"];
        if(d.length===3&&d.charAt(2)==="u"){
            a+=this[b="u"]
            }
            return a
        }
        throw new Error("Don't recognize property "+d)
    };

curvyCnrSpec.prototype.radiusdiff=function(a){
    if(a!=="t"&&a!=="b"){
        throw new Error("Param must be 't' or 'b'")
        }
        return Math.abs(this[a+"lR"]-this[a+"rR"])
    };

curvyCnrSpec.prototype.setfrom=function(a){
    this.tlu=this.tru=this.blu=this.bru="px";
    if("tl" in a){
        this.tlR=a.tl.radius
        }
        if("tr" in a){
        this.trR=a.tr.radius
        }
        if("bl" in a){
        this.blR=a.bl.radius
        }
        if("br" in a){
        this.brR=a.br.radius
        }
        if("antiAlias" in a){
        this.antiAlias=a.antiAlias
        }
    };

curvyCnrSpec.prototype.cloneOn=function(f){
    var j=["tl","tr","bl","br"];
    var k=0;
    var d,g;
    for(d in j){
        if(!isNaN(d)){
            g=this[j[d]+"u"];
            if(g!==""&&g!=="px"){
                k=new curvyCnrSpec;
                break
            }
        }
    }
    if(!k){
    k=this
    }else{
    var c,b,h=curvyBrowser.get_style(f,"left");
    for(d in j){
        if(!isNaN(d)){
            c=j[d];
            g=this[c+"u"];
            b=this[c+"R"];
            if(g!=="px"){
                var a=f.style.left;
                f.style.left=b+g;
                b=f.style.pixelLeft;
                f.style.left=a
                }
                k[c+"R"]=b;
            k[c+"u"]="px"
            }
        }
    f.style.left=h
}
return k
};

curvyCnrSpec.prototype.radiusSum=function(a){
    if(a!=="t"&&a!=="b"){
        throw new Error("Param must be 't' or 'b'")
        }
        return this[a+"lR"]+this[a+"rR"]
    };

curvyCnrSpec.prototype.radiusCount=function(a){
    var b=0;
    if(this[a+"lR"]){
        ++b
        }
        if(this[a+"rR"]){
        ++b
        }
        return b
    };

curvyCnrSpec.prototype.cornerNames=function(){
    var a=[];
    if(this.tlR){
        a.push("tl")
        }
        if(this.trR){
        a.push("tr")
        }
        if(this.blR){
        a.push("bl")
        }
        if(this.brR){
        a.push("br")
        }
        return a
    };

function operasheet(c){
    var a=document.styleSheets.item(c).ownerNode.text;
    a=a.replace(/\/\*(\n|\r|.)*?\*\//g,"");
    var d=new RegExp("^\\s*([\\w.#][-\\w.#, ]+)[\\n\\s]*\\{([^}]+border-((top|bottom)-(left|right)-)?radius[^}]*)\\}","mg");
    var h;
    this.rules=[];
    while((h=d.exec(a))!==null){
        var g=new RegExp("(..)border-((top|bottom)-(left|right)-)?radius:\\s*([\\d.]+)(in|em|px|ex|pt)","g");
        var f,b=new curvyCnrSpec(h[1]);
        while((f=g.exec(h[2]))!==null){
            if(f[1]!=="z-"){
                b.setcorner(f[3],f[4],f[5],f[6])
                }
            }
        this.rules.push(b)
    }
}
operasheet.contains_border_radius=function(a){
    return/border-((top|bottom)-(left|right)-)?radius/.test(document.styleSheets.item(a).ownerNode.text)
    };

function curvyCorners(){
    var g,c,d,b,l;
    if(typeof arguments[0]!=="object"){
        throw curvyCorners.newError("First parameter of curvyCorners() must be an object.")
        }
        if(arguments[0] instanceof curvyCnrSpec){
        b=arguments[0];
        if(!b.selectorText&&typeof arguments[1]==="string"){
            b.selectorText=arguments[1]
            }
        }else{
    if(typeof arguments[1]!=="object"&&typeof arguments[1]!=="string"){
        throw curvyCorners.newError("Second parameter of curvyCorners() must be an object or a class name.")
        }
        c=arguments[1];
    if(typeof c!=="string"){
        c=""
        }
        if(c!==""&&c.charAt(0)!=="."&&"autoPad" in arguments[0]){
        c="."+c
        }
        b=new curvyCnrSpec(c);
    b.setfrom(arguments[0])
    }
    if(b.selectorText){
    l=0;
    var h=b.selectorText.replace(/\s+$/,"").split(/,\s*/);
    d=new Array;
    for(g=0;g<h.length;++g){
        if((c=h[g].lastIndexOf("#"))!==-1){
            h[g]=h[g].substr(c)
            }
            d=d.concat(curvyCorners.getElementsBySelector(h[g].split(/\s+/)))
        }
    }else{
    l=1;
    d=arguments
    }
    for(g=l,c=d.length;g<c;++g){
    var k=d[g];
    var a=false;
    if(!k.className){
        k.className="curvyIgnore"
        }else{
        a=k.className.indexOf("curvyIgnore")!==-1;
        if(!a){
            k.className+=" curvyIgnore"
            }
        }
    if(!a){
    if(k.className.indexOf("curvyRedraw")!==-1){
        if(typeof curvyCorners.redrawList==="undefined"){
            curvyCorners.redrawList=new Array
            }
            curvyCorners.redrawList.push({
            node:k,
            spec:b,
            copy:k.cloneNode(false)
            })
        }
        var f=new curvyObject(b,k);
    f.applyCorners()
    }
}
}
curvyCorners.prototype.applyCornersToAll=function(){
    throw curvyCorners.newError("This function is now redundant. Just call curvyCorners(). See documentation.")
    };

curvyCorners.redraw=function(){
    if(curvyBrowser.supportsCorners){
        return
    }
    if(!curvyCorners.redrawList){
        throw curvyCorners.newError("curvyCorners.redraw() has nothing to redraw.")
        }
        var h=curvyCorners.block_redraw;
    curvyCorners.block_redraw=true;
    for(var c in curvyCorners.redrawList){
        if(isNaN(c)){
            continue
        }
        var g=curvyCorners.redrawList[c];
        if(!g.node.clientWidth){
            continue
        }
        var d=g.copy.cloneNode(false);
        for(var f=g.node.firstChild;f!==null;f=f.nextSibling){
            if(f.className.indexOf("autoPadDiv")!==-1){
                break
            }
        }
        if(!f){
        curvyCorners.alert("Couldn't find autoPad DIV");
        break
    }
    g.node.parentNode.replaceChild(d,g.node);
        var a=f.getElementsByTagName("script");
        for(var b=a.length-1;b>=0;--b){
        a[b].parentNode.removeChild(a[b])
        }while(f.firstChild){
        d.appendChild(f.removeChild(f.firstChild))
        }
        g=new curvyObject(g.spec,g.node=d);
        g.applyCorners()
        }
        curvyCorners.block_redraw=h
};

curvyCorners.adjust=function(obj,prop,newval){
    if(!curvyBrowser.supportsCorners){
        if(!curvyCorners.redrawList){
            throw curvyCorners.newError("curvyCorners.adjust() has nothing to adjust.")
            }
            var i,j=curvyCorners.redrawList.length;
        for(i=0;i<j;++i){
            if(curvyCorners.redrawList[i].node===obj){
                break
            }
        }
        if(i===j){
        throw curvyCorners.newError("Object not redrawable")
        }
        obj=curvyCorners.redrawList[i].copy
    }
    if(prop.indexOf(".")===-1){
    obj[prop]=newval
    }else{
    eval("obj."+prop+"='"+newval+"'")
    }
};

curvyCorners.handleWinResize=function(){
    if(!curvyCorners.block_redraw){
        curvyCorners.redraw()
        }
    };

curvyCorners.setWinResize=function(a){
    curvyCorners.block_redraw=!a
    };

curvyCorners.newError=function(a){
    return new Error("curvyCorners Error:\n"+a)
    };

curvyCorners.alert=function(a){
    if(typeof curvyCornersVerbose==="undefined"||curvyCornersVerbose){
        alert(a)
        }
    };

function curvyObject(){
    var B;
    this.box=arguments[1];
    this.settings=arguments[0];
    this.topContainer=this.bottomContainer=this.shell=B=null;
    var p=this.box.clientWidth;
    if(("canHaveChildren" in this.box&&!this.box.canHaveChildren)||this.box.tagName==="TABLE"){
        throw new Error(this.errmsg("You cannot apply corners to "+this.box.tagName+" elements.","Error"))
        }
        if(!p&&curvyBrowser.isIE){
        this.box.style.zoom=1;
        p=this.box.clientWidth
        }
        if(!p&&curvyBrowser.get_style(this.box,"display")==="inline"){
        this.box.style.display="inline-block";
        curvyCorners.alert(this.errmsg("Converting inline element to inline-block","warning"));
        p=this.box.clientWidth
        }
        if(!p){
        if(!this.box.parentNode){
            throw this.newError("box has no parent!")
            }
            for(B=this.box;;B=B.parentNode){
            if(!B||B.tagName==="BODY"){
                this.applyCorners=function(){};

                curvyCorners.alert(this.errmsg("zero-width box with no accountable parent","warning"));
                return
            }
            if(curvyBrowser.get_style(B,"display")==="none"){
                break
            }
        }
        var u=B.style.display;
    B.style.display="block";
    p=this.box.clientWidth
    }
    if(!p){
    curvyCorners.alert(this.errmsg("zero-width box, cannot display","error"));
    this.applyCorners=function(){};

    return
}
if(arguments[0] instanceof curvyCnrSpec){
    this.spec=arguments[0].cloneOn(this.box)
    }else{
    this.spec=new curvyCnrSpec("");
    this.spec.setfrom(this.settings)
    }
    var J=curvyBrowser.get_style(this.box,"borderTopWidth");
var o=curvyBrowser.get_style(this.box,"borderBottomWidth");
var h=curvyBrowser.get_style(this.box,"borderLeftWidth");
var c=curvyBrowser.get_style(this.box,"borderRightWidth");
var n=curvyBrowser.get_style(this.box,"borderTopColor");
var k=curvyBrowser.get_style(this.box,"borderBottomColor");
var b=curvyBrowser.get_style(this.box,"borderLeftColor");
var I=curvyBrowser.get_style(this.box,"borderRightColor");
var d=curvyBrowser.get_style(this.box,"borderTopStyle");
var m=curvyBrowser.get_style(this.box,"borderBottomStyle");
var g=curvyBrowser.get_style(this.box,"borderLeftStyle");
var a=curvyBrowser.get_style(this.box,"borderRightStyle");
var i=curvyBrowser.get_style(this.box,"backgroundColor");
var f=curvyBrowser.get_style(this.box,"backgroundImage");
var F=curvyBrowser.get_style(this.box,"backgroundRepeat");
var z,x;
if(this.box.currentStyle&&this.box.currentStyle.backgroundPositionX){
    z=curvyBrowser.get_style(this.box,"backgroundPositionX");
    x=curvyBrowser.get_style(this.box,"backgroundPositionY")
    }else{
    z=curvyBrowser.get_style(this.box,"backgroundPosition");
    z=z.split(" ");
    x=z.length===2?z[1]:0;
    z=z[0]
    }
    var w=curvyBrowser.get_style(this.box,"position");
var G=curvyBrowser.get_style(this.box,"paddingTop");
var K=curvyBrowser.get_style(this.box,"paddingBottom");
var y=curvyBrowser.get_style(this.box,"paddingLeft");
var H=curvyBrowser.get_style(this.box,"paddingRight");
var s=curvyBrowser.ieVer>7?curvyBrowser.get_style(this.box,"filter"):null;
var l=this.spec.get("tR");
var r=this.spec.get("bR");
var D=function(L){
    if(typeof L==="number"){
        return L
        }
        if(typeof L!=="string"){
        throw new Error("unexpected styleToNPx type "+typeof L)
        }
        var t=/^[-\d.]([a-z]+)$/.exec(L);
    if(t&&t[1]!="px"){
        throw new Error("Unexpected unit "+t[1])
        }
        if(isNaN(L=parseInt(L))){
        L=0
        }
        return L
    };

var A=function(t){
    return t<=0?"0":t+"px"
    };

try{
    this.borderWidth=D(J);
    this.borderWidthB=D(o);
    this.borderWidthL=D(h);
    this.borderWidthR=D(c);
    this.boxColour=curvyObject.format_colour(i);
    this.topPadding=D(G);
    this.bottomPadding=D(K);
    this.leftPadding=D(y);
    this.rightPadding=D(H);
    this.boxWidth=p;
    this.boxHeight=this.box.clientHeight;
    this.borderColour=curvyObject.format_colour(n);
    this.borderColourB=curvyObject.format_colour(k);
    this.borderColourL=curvyObject.format_colour(b);
    this.borderColourR=curvyObject.format_colour(I);
    this.borderString=this.borderWidth+"px "+d+" "+this.borderColour;
    this.borderStringB=this.borderWidthB+"px "+m+" "+this.borderColourB;
    this.borderStringL=this.borderWidthL+"px "+g+" "+this.borderColourL;
    this.borderStringR=this.borderWidthR+"px "+a+" "+this.borderColourR;
    this.backgroundImage=((f!="none")?f:"");
    this.backgroundRepeat=F
    }catch(E){
    throw this.newError(E.message)
    }
    var j=this.boxHeight;
var C=p;
if(curvyBrowser.isOp){
    var v;
    z=D(z);
    x=D(x);
    if(z){
        v=C+this.borderWidthL+this.borderWidthR;
        if(z>v){
            z=v
            }
            z=(v/z*100)+"%"
        }
        if(x){
        v=j+this.borderWidth+this.borderWidthB;
        if(x>v){
            x=v
            }
            x=(v/x*100)+"%"
        }
    }
if(curvyBrowser.quirksMode){}else{
    this.boxWidth-=this.leftPadding+this.rightPadding;
    this.boxHeight-=this.topPadding+this.bottomPadding
    }
    this.contentContainer=document.createElement("div");
if(s){
    this.contentContainer.style.filter=s
    }while(this.box.firstChild){
    this.contentContainer.appendChild(this.box.removeChild(this.box.firstChild))
    }
    if(w!="absolute"){
    this.box.style.position="relative"
    }
    this.box.style.padding="0";
this.box.style.border=this.box.style.backgroundImage="none";
this.box.style.backgroundColor="transparent";
this.box.style.width=(C+this.borderWidthL+this.borderWidthR)+"px";
this.box.style.height=(j+this.borderWidth+this.borderWidthB)+"px";
var q=document.createElement("div");
q.style.position="absolute";
if(s){
    q.style.filter=s
    }
    if(curvyBrowser.quirksMode){
    q.style.width=(C+this.borderWidthL+this.borderWidthR)+"px"
    }else{
    q.style.width=C+"px"
    }
    q.style.height=A(j+this.borderWidth+this.borderWidthB-l-r);
q.style.padding="0";
q.style.top=l+"px";
q.style.left="0";
if(this.borderWidthL){
    q.style.borderLeft=this.borderStringL
    }
    if(this.borderWidth&&!l){
    q.style.borderTop=this.borderString
    }
    if(this.borderWidthR){
    q.style.borderRight=this.borderStringR
    }
    if(this.borderWidthB&&!r){
    q.style.borderBottom=this.borderStringB
    }
    q.style.backgroundColor=i;
q.style.backgroundImage=this.backgroundImage;
q.style.backgroundRepeat=this.backgroundRepeat;
q.style.direction="ltr";
this.shell=this.box.appendChild(q);
p=curvyBrowser.get_style(this.shell,"width");
if(p===""||p==="auto"||p.indexOf("%")!==-1){
    throw this.newError("Shell width is "+p)
    }
    this.boxWidth=(p!==""&&p!="auto"&&p.indexOf("%")==-1)?parseInt(p):this.shell.clientWidth;
this.applyCorners=function(){
    this.backgroundPosX=this.backgroundPosY=0;
    if(this.backgroundObject){
        var Z=function(ar,ap,aq){
            if(ar===0){
                return 0
                }
                if(ar==="right"||ar==="bottom"){
                return aq-ap
                }
                if(ar==="center"){
                return(aq-ap)/2
                }
                if(ar.indexOf("%")>0){
                return(aq-ap)*100/parseInt(ar)
                }
                return D(ar)
            };

        this.backgroundPosX=Z(z,this.backgroundObject.width,C);
        this.backgroundPosY=Z(x,this.backgroundObject.height,j)
        }else{
        if(this.backgroundImage){
            this.backgroundPosX=D(z);
            this.backgroundPosY=D(x)
            }
        }
    if(l){
    q=document.createElement("div");
    q.style.width=this.boxWidth+"px";
    q.style.fontSize="1px";
    q.style.overflow="hidden";
    q.style.position="absolute";
    q.style.paddingLeft=this.borderWidth+"px";
    q.style.paddingRight=this.borderWidth+"px";
    q.style.height=l+"px";
    q.style.top=-l+"px";
    q.style.left=-this.borderWidthL+"px";
    this.topContainer=this.shell.appendChild(q)
    }
    if(r){
    q=document.createElement("div");
    q.style.width=this.boxWidth+"px";
    q.style.fontSize="1px";
    q.style.overflow="hidden";
    q.style.position="absolute";
    q.style.paddingLeft=this.borderWidthB+"px";
    q.style.paddingRight=this.borderWidthB+"px";
    q.style.height=r+"px";
    q.style.bottom=-r+"px";
    q.style.left=-this.borderWidthL+"px";
    this.bottomContainer=this.shell.appendChild(q)
    }
    var ah=this.spec.cornerNames();
for(var al in ah){
    if(!isNaN(al)){
        var ad=ah[al];
        var ae=this.spec[ad+"R"];
        var af,ai,O,ag;
        if(ad=="tr"||ad=="tl"){
            af=this.borderWidth;
            ai=this.borderColour;
            ag=this.borderWidth
            }else{
            af=this.borderWidthB;
            ai=this.borderColourB;
            ag=this.borderWidthB
            }
            O=ae-ag;
        var Y=document.createElement("div");
        Y.style.height=this.spec.get(ad+"Ru");
        Y.style.width=this.spec.get(ad+"Ru");
        Y.style.position="absolute";
        Y.style.fontSize="1px";
        Y.style.overflow="hidden";
        var W,V,T;
        var R=s?parseInt(/alpha\(opacity.(\d+)\)/.exec(s)[1]):100;
        for(W=0;W<ae;++W){
            var Q=(W+1>=O)?-1:Math.floor(Math.sqrt(Math.pow(O,2)-Math.pow(W+1,2)))-1;
            if(O!=ae){
                var N=(W>=O)?-1:Math.ceil(Math.sqrt(Math.pow(O,2)-Math.pow(W,2)));
                var L=(W+1>=ae)?-1:Math.floor(Math.sqrt(Math.pow(ae,2)-Math.pow((W+1),2)))-1
                }
                var t=(W>=ae)?-1:Math.ceil(Math.sqrt(Math.pow(ae,2)-Math.pow(W,2)));
            if(Q>-1){
                this.drawPixel(W,0,this.boxColour,R,(Q+1),Y,true,ae)
                }
                if(O!=ae){
                if(this.spec.antiAlias){
                    for(V=Q+1;V<N;++V){
                        if(this.backgroundImage!==""){
                            var M=curvyObject.pixelFraction(W,V,O)*100;
                            this.drawPixel(W,V,ai,R,1,Y,M>=30,ae)
                            }else{
                            if(this.boxColour!=="transparent"){
                                var ac=curvyObject.BlendColour(this.boxColour,ai,curvyObject.pixelFraction(W,V,O));
                                this.drawPixel(W,V,ac,R,1,Y,false,ae)
                                }else{
                                this.drawPixel(W,V,ai,R>>1,1,Y,false,ae)
                                }
                            }
                    }
                    if(L>=N){
                if(N==-1){
                    N=0
                    }
                    this.drawPixel(W,N,ai,R,(L-N+1),Y,false,0)
                }
                T=ai;
            V=L
            }else{
            if(L>Q){
                this.drawPixel(W,(Q+1),ai,R,(L-Q),Y,false,0)
                }
            }
        }else{
    T=this.boxColour;
    V=Q
    }
    if(this.spec.antiAlias&&this.boxColour!=="transparent"){
    while(++V<t){
        this.drawPixel(W,V,T,(curvyObject.pixelFraction(W,V,ae)*R),1,Y,ag<=0,ae)
        }
    }
}
var ak;
for(v=0,ak=Y.childNodes.length;v<ak;++v){
    var X=Y.childNodes[v];
    var aj=parseInt(X.style.top);
    var an=parseInt(X.style.left);
    var ao=parseInt(X.style.height);
    if(ad=="tl"||ad=="bl"){
        X.style.left=(ae-an-1)+"px"
        }
        if(ad=="tr"||ad=="tl"){
        X.style.top=(ae-ao-aj)+"px"
        }
        X.style.backgroundRepeat=this.backgroundRepeat;
    if(this.backgroundImage){
        switch(ad){
            case"tr":
                X.style.backgroundPosition=(this.backgroundPosX-this.borderWidthL+ae-C-an)+"px "+(this.backgroundPosY+ao+aj+this.borderWidth-ae)+"px";
                break;
            case"tl":
                X.style.backgroundPosition=(this.backgroundPosX-ae+an+1+this.borderWidthL)+"px "+(this.backgroundPosY-ae+ao+aj+this.borderWidth)+"px";
                break;
            case"bl":
                X.style.backgroundPosition=(this.backgroundPosX-ae+an+1+this.borderWidthL)+"px "+(this.backgroundPosY-j-this.borderWidth+(curvyBrowser.quirksMode?aj:-aj)+ae)+"px";
                break;
            case"br":
                if(curvyBrowser.quirksMode){
                X.style.backgroundPosition=(this.backgroundPosX-this.borderWidthL-C+ae-an)+"px "+(this.backgroundPosY-j-this.borderWidth+aj+ae)+"px"
                }else{
                X.style.backgroundPosition=(this.backgroundPosX-this.borderWidthL-C+ae-an)+"px "+(this.backgroundPosY-j-this.borderWidth+ae-aj)+"px"
                }
            }
        }
}
switch(ad){
    case"tl":
        Y.style.top=Y.style.left="0";
        this.topContainer.appendChild(Y);
        break;
    case"tr":
        Y.style.top=Y.style.right="0";
        this.topContainer.appendChild(Y);
        break;
    case"bl":
        Y.style.bottom=Y.style.left="0";
        this.bottomContainer.appendChild(Y);
        break;
    case"br":
        Y.style.bottom=Y.style.right="0";
        this.bottomContainer.appendChild(Y)
        }
    }
}
var aa={
    t:this.spec.radiusdiff("t"),
    b:this.spec.radiusdiff("b")
    };

for(var U in aa){
    if(typeof U==="function"){
        continue
    }
    if(!this.spec.get(U+"R")){
        continue
    }
    if(aa[U]){
        var am=(this.spec[U+"lR"]<this.spec[U+"rR"])?U+"l":U+"r";
        var P=document.createElement("div");
        P.style.height=aa[U]+"px";
        P.style.width=this.spec.get(am+"Ru");
        P.style.position="absolute";
        P.style.fontSize="1px";
        P.style.overflow="hidden";
        P.style.backgroundColor=this.boxColour;
        if(s){
            P.style.filter=s
            }
            P.style.backgroundImage=this.backgroundImage;
        P.style.backgroundRepeat=this.backgroundRepeat;
        switch(am){
            case"tl":
                P.style.bottom=P.style.left="0";
                P.style.borderLeft=this.borderStringL;
                P.style.backgroundPosition=this.backgroundPosX+"px "+(this.borderWidth+this.backgroundPosY-this.spec.tlR)+"px";
                this.topContainer.appendChild(P);
                break;
            case"tr":
                P.style.bottom=P.style.right="0";
                P.style.borderRight=this.borderStringR;
                P.style.backgroundPosition=(this.backgroundPosX-this.boxWidth+this.spec.trR)+"px "+(this.borderWidth+this.backgroundPosY-this.spec.trR)+"px";
                this.topContainer.appendChild(P);
                break;
            case"bl":
                P.style.top=P.style.left="0";
                P.style.borderLeft=this.borderStringL;
                P.style.backgroundPosition=this.backgroundPosX+"px "+(this.backgroundPosY-this.borderWidth-this.boxHeight+aa[U]+this.spec.blR)+"px";
                this.bottomContainer.appendChild(P);
                break;
            case"br":
                P.style.top=P.style.right="0";
                P.style.borderRight=this.borderStringR;
                P.style.backgroundPosition=(this.borderWidthL+this.backgroundPosX-this.boxWidth+this.spec.brR)+"px "+(this.backgroundPosY-this.borderWidth-this.boxHeight+aa[U]+this.spec.brR)+"px";
                this.bottomContainer.appendChild(P)
                }
            }
    var S=document.createElement("div");
    if(s){
    S.style.filter=s
    }
    S.style.position="relative";
S.style.fontSize="1px";
S.style.overflow="hidden";
S.style.width=this.fillerWidth(U);
    S.style.backgroundColor=this.boxColour;
    S.style.backgroundImage=this.backgroundImage;
    S.style.backgroundRepeat=this.backgroundRepeat;
    switch(U){
    case"t":
        if(this.topContainer){
        if(curvyBrowser.quirksMode){
            S.style.height=100+l+"px"
            }else{
            S.style.height=100+l-this.borderWidth+"px"
            }
            S.style.marginLeft=this.spec.tlR?(this.spec.tlR-this.borderWidthL)+"px":"0";
        S.style.borderTop=this.borderString;
        if(this.backgroundImage){
            var ab=this.spec.tlR?(this.borderWidthL+this.backgroundPosX-this.spec.tlR)+"px ":this.backgroundPosX+"px ";
            S.style.backgroundPosition=ab+this.backgroundPosY+"px";
            this.shell.style.backgroundPosition=this.backgroundPosX+"px "+(this.backgroundPosY-l+this.borderWidthL)+"px"
            }
            this.topContainer.appendChild(S)
        }
        break;
    case"b":
        if(this.bottomContainer){
        if(curvyBrowser.quirksMode){
            S.style.height=r+"px"
            }else{
            S.style.height=r-this.borderWidthB+"px"
            }
            S.style.marginLeft=this.spec.blR?(this.spec.blR-this.borderWidthL)+"px":"0";
        S.style.borderBottom=this.borderStringB;
        if(this.backgroundImage){
            var ab=this.spec.blR?(this.backgroundPosX+this.borderWidthL-this.spec.blR)+"px ":this.backgroundPosX+"px ";
            S.style.backgroundPosition=ab+(this.backgroundPosY-j-this.borderWidth+r)+"px"
            }
            this.bottomContainer.appendChild(S)
        }
    }
}
this.contentContainer.style.position="absolute";
this.contentContainer.className="autoPadDiv";
this.contentContainer.style.left=this.borderWidthL+"px";
this.contentContainer.style.paddingTop=this.topPadding+"px";
this.contentContainer.style.top=this.borderWidth+"px";
this.contentContainer.style.paddingLeft=this.leftPadding+"px";
this.contentContainer.style.paddingRight=this.rightPadding+"px";
U=C;
if(!curvyBrowser.quirksMode){
    U-=this.leftPadding+this.rightPadding
    }
    this.contentContainer.style.width=U+"px";
this.contentContainer.style.textAlign=curvyBrowser.get_style(this.box,"textAlign");
this.box.style.textAlign="left";
this.box.appendChild(this.contentContainer);
if(B){
    B.style.display=u
    }
};

if(this.backgroundImage){
    z=this.backgroundCheck(z);
    x=this.backgroundCheck(x);
    if(this.backgroundObject){
        this.backgroundObject.holdingElement=this;
        this.dispatch=this.applyCorners;
        this.applyCorners=function(){
            if(this.backgroundObject.complete){
                this.dispatch()
                }else{
                this.backgroundObject.onload=new Function("curvyObject.dispatch(this.holdingElement);")
                }
            }
    }
}
}
curvyObject.prototype.backgroundCheck=function(b){
    if(b==="top"||b==="left"||parseInt(b)===0){
        return 0
        }
        if(!(/^[-\d.]+px$/.test(b))&&!this.backgroundObject){
        this.backgroundObject=new Image;
        var a=function(d){
            var c=/url\("?([^'"]+)"?\)/.exec(d);
            return(c?c[1]:d)
            };

        this.backgroundObject.src=a(this.backgroundImage)
        }
        return b
    };

curvyObject.dispatch=function(a){
    if("dispatch" in a){
        a.dispatch()
        }else{
        throw a.newError("No dispatch function")
        }
    };

curvyObject.prototype.drawPixel=function(k,h,a,g,i,j,c,f){
    var b=document.createElement("div");
    b.style.height=i+"px";
    b.style.width="1px";
    b.style.position="absolute";
    b.style.fontSize="1px";
    b.style.overflow="hidden";
    var d=this.spec.get("tR");
    b.style.backgroundColor=a;
    if(c&&this.backgroundImage!==""){
        b.style.backgroundImage=this.backgroundImage;
        b.style.backgroundPosition="-"+(this.boxWidth-(f-k)+this.borderWidth)+"px -"+((this.boxHeight+d+h)-this.borderWidth)+"px"
        }
        if(g!=100){
        curvyObject.setOpacity(b,g)
        }
        b.style.top=h+"px";
    b.style.left=k+"px";
    j.appendChild(b)
    };

curvyObject.prototype.fillerWidth=function(b){
    var a,c;
    a=curvyBrowser.quirksMode?0:this.spec.radiusCount(b)*this.borderWidthL;
    if((c=this.boxWidth-this.spec.radiusSum(b)+a)<0){
        throw this.newError("Radius exceeds box width")
        }
        return c+"px"
    };

curvyObject.prototype.errmsg=function(c,d){
    var b="\ntag: "+this.box.tagName;
    if(this.box.id){
        b+="\nid: "+this.box.id
        }
        if(this.box.className){
        b+="\nclass: "+this.box.className
        }
        var a;
    if((a=this.box.parentNode)===null){
        b+="\n(box has no parent)"
        }else{
        b+="\nParent tag: "+a.tagName;
        if(a.id){
            b+="\nParent ID: "+a.id
            }
            if(a.className){
            b+="\nParent class: "+a.className
            }
        }
    if(d===undefined){
    d="warning"
    }
    return"curvyObject "+d+":\n"+c+b
};

curvyObject.prototype.newError=function(a){
    return new Error(this.errmsg(a,"exception"))
    };

curvyObject.IntToHex=function(b){
    var a=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];
    return a[b>>>4]+""+a[b&15]
    };

curvyObject.BlendColour=function(m,k,h){
    if(m==="transparent"||k==="transparent"){
        throw this.newError("Cannot blend with transparent")
        }
        if(m.charAt(0)!=="#"){
        m=curvyObject.format_colour(m)
        }
        if(k.charAt(0)!=="#"){
        k=curvyObject.format_colour(k)
        }
        var d=parseInt(m.substr(1,2),16);
    var l=parseInt(m.substr(3,2),16);
    var g=parseInt(m.substr(5,2),16);
    var c=parseInt(k.substr(1,2),16);
    var j=parseInt(k.substr(3,2),16);
    var f=parseInt(k.substr(5,2),16);
    if(h>1||h<0){
        h=1
        }
        var i=Math.round((d*h)+(c*(1-h)));
    if(i>255){
        i=255
        }
        if(i<0){
        i=0
        }
        var b=Math.round((l*h)+(j*(1-h)));
    if(b>255){
        b=255
        }
        if(b<0){
        b=0
        }
        var a=Math.round((g*h)+(f*(1-h)));
    if(a>255){
        a=255
        }
        if(a<0){
        a=0
        }
        return"#"+curvyObject.IntToHex(i)+curvyObject.IntToHex(b)+curvyObject.IntToHex(a)
    };

curvyObject.pixelFraction=function(i,h,a){
    var k;
    var f=a*a;
    var b=new Array(2);
    var g=new Array(2);
    var j=0;
    var c="";
    var d=Math.sqrt(f-Math.pow(i,2));
    if(d>=h&&d<(h+1)){
        c="Left";
        b[j]=0;
        g[j]=d-h;
        ++j
        }
        d=Math.sqrt(f-Math.pow(h+1,2));
    if(d>=i&&d<(i+1)){
        c+="Top";
        b[j]=d-i;
        g[j]=1;
        ++j
        }
        d=Math.sqrt(f-Math.pow(i+1,2));
    if(d>=h&&d<(h+1)){
        c+="Right";
        b[j]=1;
        g[j]=d-h;
        ++j
        }
        d=Math.sqrt(f-Math.pow(h,2));
    if(d>=i&&d<(i+1)){
        c+="Bottom";
        b[j]=d-i;
        g[j]=0
        }
        switch(c){
        case"LeftRight":
            k=Math.min(g[0],g[1])+((Math.max(g[0],g[1])-Math.min(g[0],g[1]))/2);
            break;
        case"TopRight":
            k=1-(((1-b[0])*(1-g[1]))/2);
            break;
        case"TopBottom":
            k=Math.min(b[0],b[1])+((Math.max(b[0],b[1])-Math.min(b[0],b[1]))/2);
            break;
        case"LeftBottom":
            k=g[0]*b[1]/2;
            break;
        default:
            k=1
            }
            return k
    };

curvyObject.rgb2Array=function(a){
    var b=a.substring(4,a.indexOf(")"));
    return b.split(/,\s*/)
    };

curvyObject.rgb2Hex=function(b){
    try{
        var c=curvyObject.rgb2Array(b);
        var h=parseInt(c[0]);
        var f=parseInt(c[1]);
        var a=parseInt(c[2]);
        var d="#"+curvyObject.IntToHex(h)+curvyObject.IntToHex(f)+curvyObject.IntToHex(a)
        }catch(g){
        var i="getMessage" in g?g.getMessage():g.message;
        throw new Error("Error ("+i+") converting RGB value to Hex in rgb2Hex")
        }
        return d
    };

curvyObject.setOpacity=function(g,c){
    c=(c==100)?99.999:c;
    if(curvyBrowser.isSafari&&g.tagName!="IFRAME"){
        var b=curvyObject.rgb2Array(g.style.backgroundColor);
        var f=parseInt(b[0]);
        var d=parseInt(b[1]);
        var a=parseInt(b[2]);
        g.style.backgroundColor="rgba("+f+", "+d+", "+a+", "+c/100+")"
        }else{
        if(typeof g.style.opacity!=="undefined"){
            g.style.opacity=c/100
            }else{
            if(typeof g.style.MozOpacity!=="undefined"){
                g.style.MozOpacity=c/100
                }else{
                if(typeof g.style.filter!=="undefined"){
                    g.style.filter="alpha(opacity="+c+")"
                    }else{
                    if(typeof g.style.KHTMLOpacity!=="undefined"){
                        g.style.KHTMLOpacity=c/100
                        }
                    }
            }
    }
}
};

curvyCorners.addEvent=function(d,c,b,a){
    if(d.addEventListener){
        d.addEventListener(c,b,a);
        return true
        }
        if(d.attachEvent){
        return d.attachEvent("on"+c,b)
        }
        d["on"+c]=b;
    return false
    };

if(typeof addEvent==="undefined"){
    addEvent=curvyCorners.addEvent
        }
        curvyObject.getComputedColour=function(g){
    var h=document.createElement("DIV");
    h.style.backgroundColor=g;
    document.body.appendChild(h);
    if(window.getComputedStyle){
        var f=document.defaultView.getComputedStyle(h,null).getPropertyValue("background-color");
        h.parentNode.removeChild(h);
        if(f.substr(0,3)==="rgb"){
            f=curvyObject.rgb2Hex(f)
            }
            return f
        }else{
        var a=document.body.createTextRange();
        a.moveToElementText(h);
        a.execCommand("ForeColor",false,g);
        var b=a.queryCommandValue("ForeColor");
        var c="rgb("+(b&255)+", "+((b&65280)>>8)+", "+((b&16711680)>>16)+")";
        h.parentNode.removeChild(h);
        a=null;
        return curvyObject.rgb2Hex(c)
        }
    };

curvyObject.format_colour=function(a){
    if(a!==""&&a!=="transparent"){
        if(a.substr(0,3)==="rgb"){
            a=curvyObject.rgb2Hex(a)
            }else{
            if(a.charAt(0)!=="#"){
                a=curvyObject.getComputedColour(a)
                }else{
                if(a.length===4){
                    a="#"+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)+a.charAt(3)+a.charAt(3)
                    }
                }
        }
}
return a
};

curvyCorners.getElementsByClass=function(j,g){
    var f=new Array;
    if(g===undefined){
        g=document
        }
        j=j.split(".");
    var a="*";
    if(j.length===1){
        a=j[0];
        j=false
        }else{
        if(j[0]){
            a=j[0]
            }
            j=j[1]
        }
        var d,c,b;
    if(a.charAt(0)==="#"){
        c=document.getElementById(a.substr(1));
        if(c){
            f.push(c)
            }
        }else{
    c=g.getElementsByTagName(a);
    b=c.length;
    if(j){
        var h=new RegExp("(^|\\s)"+j+"(\\s|$)");
        for(d=0;d<b;++d){
            if(h.test(c[d].className)){
                f.push(c[d])
                }
            }
        }else{
    for(d=0;d<b;++d){
        f.push(c[d])
        }
    }
}
return f
};

curvyCorners.getElementsBySelector=function(f,g){
    var b;
    var h=f[0];
    if(g===undefined){
        g=document
        }
        if(h.indexOf("#")===-1){
        b=curvyCorners.getElementsByClass(h,g)
        }else{
        var d=g.getElementById(h.substr(1));
        if(!d){
            return[]
            }
            b=[d]
        }
        if(f.length>1){
        var a=[];
        for(var c=b.length;--c>=0;){
            a=a.concat(curvyCorners.getElementsBySelector(f.slice(1),b[c]))
            }
            b=a
        }
        return b
    };

if(curvyBrowser.supportsCorners){
    var curvyCornersNoAutoScan=true;
    curvyCorners.init=function(){}
    }else{
    curvyCorners.scanStyles=function(){
        function b(h){
            if(!parseInt(h)){
                return"px"
                }
                var i=/^[\d.]+(\w+)$/.exec(h);
            return i[1]
            }
            var f,d,c;
        if(curvyBrowser.isIE){
            function a(o){
                var j=o.style,h,i,m,l,n;
                if(curvyBrowser.ieVer>6){
                    h=j["-moz-border-radius"]||0;
                    i=j["-moz-border-radius-topright"]||0;
                    m=j["-moz-border-radius-topleft"]||0;
                    l=j["-moz-border-radius-bottomright"]||0;
                    n=j["-moz-border-radius-bottomleft"]||0
                    }else{
                    h=j["moz-border-radius"]||0;
                    i=j["moz-border-radius-topright"]||0;
                    m=j["moz-border-radius-topleft"]||0;
                    l=j["moz-border-radius-bottomright"]||0;
                    n=j["moz-border-radius-bottomleft"]||0
                    }
                    if(h){
                    var p=h.split("/");
                    p=p[0].split(/\s+/);
                    if(p[p.length-1]===""){
                        p.pop()
                        }
                        switch(p.length){
                        case 3:
                            m=p[0];
                            i=n=p[1];
                            l=p[2];
                            h=false;
                            break;
                        case 2:
                            m=l=p[0];
                            i=n=p[1];
                            h=false;
                        case 1:
                            break;
                        case 4:
                            m=p[0];
                            i=p[1];
                            l=p[2];
                            n=p[3];
                            h=false;
                            break;
                        default:
                            curvyCorners.alert("Illegal corners specification: "+h)
                            }
                        }
                if(h||m||i||l||n){
                var k=new curvyCnrSpec(o.selectorText);
                if(h){
                    k.setcorner(null,null,parseInt(h),b(h))
                    }else{
                    if(i){
                        k.setcorner("t","r",parseInt(i),b(i))
                        }
                        if(m){
                        k.setcorner("t","l",parseInt(m),b(m))
                        }
                        if(n){
                        k.setcorner("b","l",parseInt(n),b(n))
                        }
                        if(l){
                        k.setcorner("b","r",parseInt(l),b(l))
                        }
                    }
                curvyCorners(k)
            }
        }
    for(f=0;f<document.styleSheets.length;++f){
        try{
            if(document.styleSheets[f].imports){
                for(d=0;d<document.styleSheets[f].imports.length;++d){
                    for(c=0;c<document.styleSheets[f].imports[d].rules.length;++c){
                        a(document.styleSheets[f].imports[d].rules[c])
                        }
                    }
                }
            for(d=0;d<document.styleSheets[f].rules.length;++d){
        a(document.styleSheets[f].rules[d])
        }
    }catch(g){
    if(typeof curvyCornersVerbose!=="undefined"&&curvyCornersVerbose){
        alert(g.message+" - ignored")
        }
    }
}
}else{
    if(curvyBrowser.isOp){
        for(f=0;f<document.styleSheets.length;++f){
            if(operasheet.contains_border_radius(f)){
                c=new operasheet(f);
                for(d in c.rules){
                    if(!isNaN(d)){
                        curvyCorners(c.rules[d])
                        }
                    }
                }
            }
}else{
    curvyCorners.alert("Scanstyles does nothing in Webkit/Firefox/Opera")
    }
}
};

curvyCorners.init=function(){
    if(arguments.callee.done){
        return
    }
    arguments.callee.done=true;
    if(curvyBrowser.isWebKit&&curvyCorners.init.timer){
        clearInterval(curvyCorners.init.timer);
        curvyCorners.init.timer=null
        }
        curvyCorners.scanStyles()
    }
}
if(typeof curvyCornersNoAutoScan==="undefined"||curvyCornersNoAutoScan===false){
    if(curvyBrowser.isOp){
        document.addEventListener("DOMContentLoaded",curvyCorners.init,false)
            }else{
        curvyCorners.addEvent(window,"load",curvyCorners.init,false)
            }
        };